#pragma once;

class Vector4 : public D3DXVECTOR4
{
	// Constructors

	public:

		Vector4() : D3DXVECTOR4()
		{
		}

		Vector4(const float xCoord, const float yCoord, const float zCoord)
		{
			this->x = xCoord;
			this->y = yCoord;
			this->z = zCoord;
			this->w = 1;
		}

		Vector4(const float xCoord, const float yCoord, const float zCoord, const float wCoord)
		{
			this->x = xCoord;
			this->y = yCoord;
			this->z = zCoord;
			this->w = wCoord;
		}

	// Public Methods

	public:

		inline float Length()
		{
			return D3DXVec4Length(this);
		}

		inline Vector4 *Normalize()
		{
			return static_cast<Vector4 *>(D3DXVec4Normalize(this, this));
		}

		inline float Dot(const Vector4 &vector4)
		{
			return D3DXVec4Dot(this, &vector4);
		}
};